#include<semaphore.h>
#include<iostream>
#pragma once

class sem
{
public:
    sem(int n)
    {
        sem_init(&_sem, 0, n);
    }
    void p()
    {
        sem_wait(&_sem);
    }
    void v()
    {
        sem_post(&_sem);
    }
    ~sem()
    {
        sem_destroy(&_sem);
    }

private:
    sem_t _sem;
};